﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using liclSolcred.Views;
using com.creditos.be.liclSolcred;
using com.creditos.util.liclUtil;
using com.creditos.be.liclUtil;
using com.creditos.be.liclVerifica;

public partial class solcred_FormsManVerificacionTrabajo : CreditosPaseBase, IFormsVerificacionTrabajoView
{
    private liclSolcred.Views.FormsVerificacionTrabajoPresenter oPresenter = new FormsVerificacionTrabajoPresenter();
    decimal NumeroSolicitud = 0;
    protected void Page_Load(object sender, EventArgs e)
    {        
        if (!this.IsPostBack)
        {
            oPresenter.View = this;
            Master.TituloModulo = "Verificación Trabajo";
            int intCodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]);
            NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
            int intCodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
            ObtenerDatosVerificacion(intCodigoIntegrante, NumeroSolicitud, intCodigoVerificacion);
            oPresenter.Load();
            InsertarSeleccione();
            UCBarraHerramientas1.btnEvaluar.Visible = true;
            UCBarraHerramientas1.btnExonerar.Visible = true;
            UCBarraHerramientas1.btnAnular.Visible = true;
            UCBarraHerramientas1.btnActualizar.Visible = true;
            UCBarraHerramientas1.btnRegresar.Visible = true;
        }
        oPresenter.View = this;

    }

    protected override void DefineHandlers()
    {
        UCBarraHerramientas1.btnActualizar.Click += new EventHandler(btnActualizar_Click);
        UCBarraHerramientas1.btnRegresar.Click += new EventHandler(btnRegresar_Click);
        UCBarraHerramientas1.btnAnular.Click += new EventHandler(btnAnular_Click);
        UCBarraHerramientas1.btnExonerar.Click += new EventHandler(btnExonerar_Click);
    }

    void btnActualizar_Click(object sender, EventArgs e)
    {
                DateTime fechaTmp;
        //fechaTmp = DateTime.Parse(txtFecVis.Text);

        bool ok = DateTime.TryParse(txtFecVis.Text, out fechaTmp);
        if (!ok)
        { /* No era válido */
            MostrarMensajeError("Fecha no ingresada o error de formato");
        }
        else
        { /* La fecha está en dFecha */

            if (fechaTmp > DateTime.Now)
            {
                MostrarMensajeError("Fecha de Visita no puede ser mayor a la fecha actual");
            }


            else if (ddlResultado.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar un resultado de verificación");
            }
            else if (txtDesApr.Text == string.Empty)
            {
                MostrarMensajeError("Debe llenar las apreciaciones");
            }
            // else if ( ddlEstadoVivienda.SelectedIndex == 0)
            // {
            //     MostrarMensajeError("Debe seleccionar una opción de estado de inmueble");
            // }
            else if (ddlTipoInmueble.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar un tipo de inmueble");
            }
            else if (ddlTipoConstruccion.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar un tipo de construcción");
            }
            else if (ddlLabora.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar una opción de labora");
            }
            else
            {
                BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();

                oVerificacion.NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
                oVerificacion.CodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]);
                oVerificacion.CodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
                oVerificacion.FechaVisita = fechaTmp;
                oVerificacion.FechaLabora = DateTime.Parse("01/01/2001");//txtFecha.Text == string.Empty ? DateTime.Parse("01/01/2001") : DateTime.Parse(txtFecVis.Text);              
                oVerificacion.CodigoTipoInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoInmueble.SelectedValue));
                oVerificacion.CodigoTipoZona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoZona.SelectedValue));
                oVerificacion.CodigoTipoConstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoConstruccion.SelectedValue));
                oVerificacion.CodigoEstadoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoInmueble.SelectedValue));
                oVerificacion.CodigoMedioComunicacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMedioComunicacion.SelectedValue));
                oVerificacion.CodigoTipoContrato = int.Parse(Utilitario.DarFormatoEnteroCero(ddlContrato.SelectedValue));
                oVerificacion.ValorTiempoEmpleo = txtAntLab.Text == string.Empty ? 0 : int.Parse(txtAntLab.Text);
                oVerificacion.ValorIngresos = txtSueImp.Text == string.Empty ? 0 : int.Parse(txtSueImp.Text);
                oVerificacion.CodigoMonedaIngresos = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMoneda.SelectedValue));
                oVerificacion.CodigoBaseSueldo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlBaseSueldo.SelectedValue));
                oVerificacion.CodigoFrecuenciaPago = int.Parse(Utilitario.DarFormatoEnteroCero(ddlFrecPago.SelectedValue));
                oVerificacion.CodigoPropietario = int.Parse(Utilitario.DarFormatoEnteroCero(ddlPropietario.SelectedValue));
                oVerificacion.CodigoAtendido = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAtendido.SelectedValue));
                oVerificacion.CodigoLabora = int.Parse(Utilitario.DarFormatoEnteroCero(ddlLabora.SelectedValue));

                oVerificacion.DescripcionEntrevistado = txtEntrevistado.Text;
                oVerificacion.DescripcionCargoEntrevistado = txtCargo.Text;

                oVerificacion.CodigoResultado = int.Parse(Utilitario.DarFormatoEnteroCero(ddlResultado.SelectedValue));
                oVerificacion.DescripcionObservacion = txtDesApr.Text;
                oVerificacion.CodigoEstado = 1;
                oVerificacion.CodigoUsuario = 1;
                List<BandejaVerificacionBE> lst = oPresenter.ActualizarVerificacionTrabajoFisica(oVerificacion);
                lblRespuesta.Text = lst[0].DescripcionEstadoVivienda;
                MostrarMensajeError("Operación realizada exitosamente");
            }
        }
    }

    void btnAnular_Click(object sender, EventArgs e)
    {
            if (txtDesApr.Text == string.Empty)
            {
                MostrarMensajeError("Debe llenar las apreciaciones");
            }        
            else
            {
                BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();

                oVerificacion.NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
                oVerificacion.CodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]);
                oVerificacion.CodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
                 if (txtFecVis.Text == string.Empty)
                    oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha("01/01/2001"));
                else oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha(txtFecVis.Text));
                oVerificacion.FechaLabora = DateTime.Parse("01/01/2001");//txtFecha.Text == string.Empty ? DateTime.Parse("01/01/2001") : DateTime.Parse(txtFecVis.Text);              
                oVerificacion.CodigoTipoInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoInmueble.SelectedValue));
                oVerificacion.CodigoTipoZona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoZona.SelectedValue));
                oVerificacion.CodigoTipoConstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoConstruccion.SelectedValue));
                oVerificacion.CodigoEstadoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoInmueble.SelectedValue));
                oVerificacion.CodigoMedioComunicacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMedioComunicacion.SelectedValue));
                oVerificacion.CodigoTipoContrato = int.Parse(Utilitario.DarFormatoEnteroCero(ddlContrato.SelectedValue));
                oVerificacion.ValorTiempoEmpleo = txtAntLab.Text == string.Empty ? 0 : int.Parse(txtAntLab.Text);
                oVerificacion.ValorIngresos = txtSueImp.Text == string.Empty ? 0 : int.Parse(txtSueImp.Text);
                oVerificacion.CodigoMonedaIngresos = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMoneda.SelectedValue));
                oVerificacion.CodigoBaseSueldo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlBaseSueldo.SelectedValue));
                oVerificacion.CodigoFrecuenciaPago = int.Parse(Utilitario.DarFormatoEnteroCero(ddlFrecPago.SelectedValue));
                oVerificacion.CodigoPropietario = int.Parse(Utilitario.DarFormatoEnteroCero(ddlPropietario.SelectedValue));
                oVerificacion.CodigoAtendido = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAtendido.SelectedValue));
                oVerificacion.CodigoLabora = int.Parse(Utilitario.DarFormatoEnteroCero(ddlLabora.SelectedValue));

                oVerificacion.DescripcionEntrevistado = txtEntrevistado.Text;
                oVerificacion.DescripcionCargoEntrevistado = txtCargo.Text;

                oVerificacion.CodigoResultado = int.Parse(Utilitario.DarFormatoEnteroCero(ddlResultado.SelectedValue));
                oVerificacion.DescripcionObservacion = txtDesApr.Text;
                oVerificacion.CodigoEstado = 2;
                oVerificacion.CodigoUsuario = 1;
                List<BandejaVerificacionBE> lst = oPresenter.ActualizarVerificacionTrabajoFisica(oVerificacion);
                MostrarMensajeError("Operación realizada exitosamente");
            }
        
    }

    void btnExonerar_Click(object sender, EventArgs e)
    {      
            if (txtDesApr.Text == string.Empty)
            {
                MostrarMensajeError("Debe llenar las apreciaciones");
            }           
            else
            {
                BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();

                oVerificacion.NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
                oVerificacion.CodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]);
                oVerificacion.CodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
                  if (txtFecVis.Text == string.Empty)
                    oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha("01/01/2001"));
                else oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha(txtFecVis.Text));
                oVerificacion.FechaLabora = DateTime.Parse("01/01/2001");//txtFecha.Text == string.Empty ? DateTime.Parse("01/01/2001") : DateTime.Parse(txtFecVis.Text);              
                oVerificacion.CodigoTipoInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoInmueble.SelectedValue));
                oVerificacion.CodigoTipoZona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoZona.SelectedValue));
                oVerificacion.CodigoTipoConstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoConstruccion.SelectedValue));
                oVerificacion.CodigoEstadoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoInmueble.SelectedValue));
                oVerificacion.CodigoMedioComunicacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMedioComunicacion.SelectedValue));
                oVerificacion.CodigoTipoContrato = int.Parse(Utilitario.DarFormatoEnteroCero(ddlContrato.SelectedValue));
                oVerificacion.ValorTiempoEmpleo = txtAntLab.Text == string.Empty ? 0 : int.Parse(txtAntLab.Text);
                oVerificacion.ValorIngresos = txtSueImp.Text == string.Empty ? 0 : int.Parse(txtSueImp.Text);
                oVerificacion.CodigoMonedaIngresos = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMoneda.SelectedValue));
                oVerificacion.CodigoBaseSueldo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlBaseSueldo.SelectedValue));
                oVerificacion.CodigoFrecuenciaPago = int.Parse(Utilitario.DarFormatoEnteroCero(ddlFrecPago.SelectedValue));
                oVerificacion.CodigoPropietario = int.Parse(Utilitario.DarFormatoEnteroCero(ddlPropietario.SelectedValue));
                oVerificacion.CodigoAtendido = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAtendido.SelectedValue));
                oVerificacion.CodigoLabora = int.Parse(Utilitario.DarFormatoEnteroCero(ddlLabora.SelectedValue));

                oVerificacion.DescripcionEntrevistado = txtEntrevistado.Text;
                oVerificacion.DescripcionCargoEntrevistado = txtCargo.Text;

                oVerificacion.CodigoResultado = int.Parse(Utilitario.DarFormatoEnteroCero(ddlResultado.SelectedValue));
                oVerificacion.DescripcionObservacion = txtDesApr.Text;
                oVerificacion.CodigoEstado = 3;
                oVerificacion.CodigoUsuario = 1;
                List<BandejaVerificacionBE> lst = oPresenter.ActualizarVerificacionTrabajoFisica(oVerificacion);
                MostrarMensajeError("Operación realizada exitosamente");
            }        
    }

    void btnRegresar_Click(object sender, EventArgs e)
    {
        Response.Redirect("FormsConBandejaVerificacion.aspx");
    }

    public void InsertarSeleccione()
    {
        List<Control> lstControles = new List<Control>();
        lstControles = Utilitario.ListarControles(Page, 2);
        foreach (Control item in lstControles)
        {
            UIBindable.InsertarSeleccionar((DropDownList)item);
        }
    }

    public void ObtenerDatosVerificacion(int intCodigoIntegrante, decimal NumeroSolicitud, int intCodigoVerificacion)
    {
        BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();
        oVerificacion.CodigoIntegrante = intCodigoIntegrante;
        oVerificacion.NumeroSolicitud = NumeroSolicitud;
        oVerificacion.CodigoVerificacion = intCodigoVerificacion;
        oPresenter.ObtenerDatosIntegranteVerificacion(oVerificacion);
    }

    #region IFormsVerificacionTrabajoView Members

    public void CargarComboVerificacionTrabajo(List<ParametroBE> lstParametro, int intCodigoTabla)
    {
        if (lstParametro.Count > 0)
        {
            switch (intCodigoTabla)
            {
                case 41:
                    UIBindable.Bind(ddlMoneda, lstParametro);
                    break;
                case 998:
                    UIBindable.Bind(ddlTipoInmueble, lstParametro);
                    break;
                case 853:
                    UIBindable.Bind(ddlTipoZona, lstParametro);
                    break;
                case 851:
                    UIBindable.Bind(ddlTipoConstruccion, lstParametro);
                    break;
                case 995:
                    UIBindable.Bind(ddlEstadoInmueble, lstParametro);
                    break;
                case 856:
                    UIBindable.Bind(ddlMedioComunicacion, lstParametro);
                    break;
                case 858:
                    UIBindable.Bind(ddlContrato, lstParametro);
                    break;
                case 887:
                    UIBindable.Bind(ddlBaseSueldo, lstParametro);
                    break;
                case 336:
                    UIBindable.Bind(ddlFrecPago, lstParametro);
                    break;                           
                case 713:
                    UIBindable.Bind(ddlPropietario, lstParametro);
                    UIBindable.Bind(ddlAtendido, lstParametro);
                    UIBindable.Bind(ddlLabora, lstParametro);
                    break;                              
                case 996:
                    UIBindable.Bind(ddlResultado, lstParametro);
                    break;
            }
        }
    }

    public void MostrarMensajeError(string p)
    {
        Master.MostrarMensaje(p, 0);
    }

    public void CargarDatosIntegranteVerificacion(List<BandejaVerificacionBE> lstParametro)
    {
        if (lstParametro.Count > 0) {

            txtNroSolInf.Text = NumeroSolicitud.ToString();
            txtTitular.Text = lstParametro[0].Titular;
            txtNroDoc.Text = lstParametro[0].NumeroDocumento;
            txtTipDoc.Text = lstParametro[0].TipoDocumento;
            txtDesDir.Text = lstParametro[0].DireccionPJ;
            txtDirCli.Text = lstParametro[0].DireccionPN;
            txtNroRuc.Text = lstParametro[0].NumeroRUC;
            txtRazSoc.Text = lstParametro[0].RazonSocial;
            txtCodPos.Text = lstParametro[0].DepartamentoPN + " - " + lstParametro[0].ProvinciaPN + " - " + lstParametro[0].ProvinciaPN;
            txtDepProvDist.Text = lstParametro[0].DepartamentoPJ + " - " + lstParametro[0].ProvinciaPJ + " - " + lstParametro[0].ProvinciaPJ;
            txtNroPedInf.Text = (string)Session["CodigoVerificacion"];
            lblRespuesta.Text = (string)Session["DescripcionEstado"];
            txtUsuIng.Text = (string)Session["CodigoUsuarioOrdena"];
            txtUsuEnv.Text = (string)Session["DescripcionUsuarioOrdena"] == "&nbsp;" ? "" : (string)Session["DescripcionUsuarioOrdena"];
            txtCodEmp.Text = (string)Session["CodigoUsuarioVerifica"];
            txtNombreEmp.Text = (string)Session["DescripcionUsuarioVerifica"] == "&nbsp;" ? "" : (string)Session["DescripcionUsuarioVerifica"];
            txtFecEnv.Text = (string)com.creditos.util.liclUtil.Utilitario.DarFormatoFecha((string)Session["FechaEnvio"]);
        }
    }

    #endregion
}
